package com.humngyang.com.hmy.study.concurrency.myannoations.collection;

import java.util.Vector;

public class VectorExample2 {
    //虽然说vector是线程安全的，但是在某些情况下也会产生现场不安全的问题，因为多个线程做remove操作和get操作，可能会导致remove操作在前，get操作在后，导致get越界。
    private static final Vector<Integer> v = new Vector<>();
    public static void main(String[] args) {
        while (true) {
            for (int i = 0; i < 10; i++) {
                v.add(1);
            }
            new Thread() {
                public void run() {
                    for (int i = 0; i < v.size(); i++) {
                        v.remove(i);
                    }
                }
            }.start();
            new Thread() {
                public void run() {
                    for (int i = 0; i < v.size(); i++) {
                        v.get(i);
                    }
                }
            }.start();
        }
    }
}
